package main

import (
	"fmt"
	"math/rand"
	"strconv"
	"strings"
)

/*
homework 1:
  使用randm构造一个100个元素的slice，判断去重后的整型个数
*/
func unic() {
	s := make([]int, 0, 10)

	for i := 0; i < 100; i++ {
		s = append(s, rand.Intn(128))
	}
	fmt.Println(s)

	m := make(map[int]int, 100)

	for _, i := range s {
		m[i] += 1
	}

	fmt.Println(len(m))
}

/*
homework:
  实现一个函数，输入为数组，输出 字符串
  输入： []int{2,3,4} 输出：“2 3 4”。多判断边界
*/
func arr2String(arr []int) string {
	if len(arr) == 0 {
		return ""
	} //可以不判断，go不会报异常
	var s strings.Builder

	for _, ele := range arr {
		s.WriteString(strconv.Itoa(ele))
		s.WriteString(" ")
	}
	res := s.String()
	return res[0 : len(res)-1] //去掉最后的一个空格
}

func main() {
	// unic()
	var arr = []int{1, 2, 3}

	s := arr2String(arr)

	fmt.Printf("[%s]", s)

}
